LAMP (소프트웨어 번들)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
LAMP는 리눅스, 아파치, MySQL, PHP(또는 Perl, Python)를 조합한 오픈 소스 웹 개발 플랫폼을 의미한다. 1998년 처음 명명되었으며, 웹 서버, 데이터베이스, 프로그래밍 언어를 통합하여 웹 애플리케이션을 구축하는 데 사용된다. LAMP는 유연성과 비용 효율성으로 인해 널리 사용되며, 다양한 변종이 존재한다. 고가용성 및 부하 분산을 위해 여러 서버를 구성하여 확장할 수 있다.
더 읽어볼만한 페이지
- MariaDB - MODX
MODX는 콘텐츠, 디자인, 로직 분리 관리 기능을 제공하는 콘텐츠 관리 시스템으로, 2004년 Etomite에서 시작되어 Evolution과 Revolution 두 버전으로 발전했으며, 높은 자유도와 확장성, 활발한 커뮤니티 지원이 특징이다. - MariaDB - InnoDB
InnoDB는 오라클에서 개발한 트랜잭션 중심의 스토리지 엔진으로, SQL, XA 트랜잭션, 테이블스페이스, 외래 키를 지원하며 MySQL과 MariaDB에서 전체 텍스트 검색, 공간 연산, 가상 열 기능 등을 제공한다. - 펄 - 래리 월
래리 월은 펄 프로그래밍 언어 창시자이자 rn, patch 개발자이며, 유니시스 근무 중 펄을 개발하고 《프로그래밍 펄》을 저술하는 등 펄 커뮤니티에 큰 영향을 미쳤고, 자유 소프트웨어 발전상 수상 및 펄 프로젝트의 자비로운 종신 독재자로 활동 중인 컴퓨터 과학자이자 기독교 신자이다. - 펄 - 펄 쿡북
펄 쿡북은 펄 프로그래밍에 대한 실용적인 해법을 요리책 형식으로 제시하는 참고서로, 1998년과 2003년에 각각 1판과 2판이 출판되어 다양한 평가에서 찬사를 받았다. - 웹 개발 소프트웨어 - 드루팔
드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다. - 웹 개발 소프트웨어 - 구글 웹 툴킷
구글 웹 툴킷(GWT)은 자바 코드를 자바스크립트로 변환하여 웹 애플리케이션 개발을 지원하는 도구로, 개발자가 자바 언어로 Ajax 애플리케이션을 개발하고 GWT 컴파일러를 통해 최적화된 자바스크립트 파일로 변환할 수 있게 한다.
LAMP (소프트웨어 번들) | |
---|---|
기본 정보 | |
종류 | 소프트웨어 번들 |
운영 체제 | 리눅스 |
웹 서버 | 아파치 HTTP 서버 |
데이터베이스 관리 시스템 | MySQL 또는 MariaDB |
스크립트 언어 | PHP, Perl, Python |
라이선스 | 다양한 오픈 소스 라이선스 |
상세 정보 | |
설명 | 웹 애플리케이션 개발 및 배포를 위한 일반적인 소프트웨어 스택 |
구성 요소 | 리눅스: 운영 체제 아파치 HTTP 서버: 웹 서버 MySQL/MariaDB: 데이터베이스 관리 시스템 PHP/Perl/Python: 스크립트 언어 |
유사 스택 | |
변종 | WAMP (윈도우 기반) MAMP (macOS 기반) XAMPP (크로스 플랫폼) LEMP (아파치 대신 Nginx 사용) |
2. 역사
LAMP라는 약어는 1998년 12월 독일 컴퓨터 잡지인 ''Computertechnik''에서 미하엘 쿤체에 의해 만들어졌으며, 그는 자유 및 오픈 소스 소프트웨어 번들이 "고가의 상용 패키지에 대한 실행 가능한 대안이 될 수 있다"는 것을 보여주었다.[2] 그 이후 O'Reilly Media와 MySQL은 이 약어를 대중화하고 사용을 전파하기 위해 협력했다.[3] 웹을 위한 최초의 오픈 소스 소프트웨어 스택 중 하나인 이 용어와 개념은 널리 퍼졌다. 이 스택은 WordPress 및 Drupal과 같은 다양한 웹 프레임워크와 애플리케이션을 호스팅할 수 있다.[4]
3. 구성 요소
몇몇 서버용 리눅스 배포판에서는 LAMP가 세트로 배포된다. LAMP를 하나의 세트로 묶으면 운영체제 설치 시 LAMP의 많은 설정 및 관련 설정을 자동으로 수행할 수 있어 서버 관리자의 수고를 덜 수 있다.
3. 1. Linux
유닉스 계열 컴퓨터 운영체제로, 자유-오픈 소스 소프트웨어 개발 및 배포 모델에 따라 제작되었다. 대부분의 리눅스 배포판은 리눅스 커널을 기반으로 하고, 종종 패키지 관리 시스템을 기반으로 하는 소프트웨어 모음으로, 패키지를 통해 완전한 LAMP 설정을 제공한다.[8] 2013년 10월 W3Techs에 따르면, 웹 서버 시장 점유율의 58.5%는 데비안과 우분투가 공유하고, RHEL, 페도라 및 CentOS가 함께 37.3%를 점유했다.
몇몇 서버용 리눅스 배포판에서는 LAMP가 세트로 배포된다. LAMP를 하나의 세트로 묶으면 운영체제 설치 시 LAMP의 많은 설정 및 관련 설정을 자동으로 수행할 수 있어 서버 관리자의 수고를 덜 수 있다.
3. 2. Apache
LAMP 스택의 웹 서버 역할은 전통적으로 아파치에서 제공해 왔으며, 이후 Nginx와 같은 다른 웹 서버도 포함하게 되었다.
아파치는 아파치 소프트웨어 재단의 후원 하에 오픈 소스 개발자 커뮤니티에 의해 개발 및 유지 관리된다. 아파치 라이선스로 배포되는 아파치는 오픈 소스 소프트웨어이다. 광범위한 기능이 지원되며, 그 중 다수는 아파치의 핵심 기능을 확장하는 컴파일러 모듈로 구현된다. 이러한 기능은 서버 측 프로그래밍 언어 지원에서 인증에 이르기까지 다양하다.
3. 3. MySQL / MariaDB
MySQL은 LAMP의 관계형 데이터베이스 관리 시스템 역할을 해왔지만, 이후 PostgreSQL, MariaDB(MySQL의 원래 개발자가 개발한 MySQL의 커뮤니티 개발 포크), MongoDB와 같은 NoSQL 데이터베이스 등이 번갈아 가며 사용되고 있다.
MySQL은 멀티스레드, 다중 사용자, SQL 데이터베이스 관리 시스템이며,[9] 2008년 썬 마이크로시스템즈에 인수되었고, 2010년에는 오라클에 인수되었다.[10] 초기부터 MySQL 팀은 GNU 일반 공중 사용 허가서 조건과 다양한 독점 소프트웨어 계약에 따라 소스 코드를 제공해 왔다.
3. 4. PHP / Perl / Python
PHP는 LAMP의 애플리케이션 프로그래밍 언어로서의 역할을 Perl과 Python과 같은 다른 언어들도 수행해왔다.
PHP는 웹 개발을 위해 설계된 서버 측 스크립팅 언어이지만, 범용 프로그래밍 언어로도 사용된다. PHP 코드는 PHP 처리 모듈을 통해 웹 서버에 의해 인터프리트되어, 결과적인 웹 페이지를 생성한다. PHP 명령은 외부 파일을 호출하여 데이터를 처리하는 대신, 선택적으로 HTML 소스 문서에 직접 포함될 수 있다. 또한 명령줄 인터페이스 기능을 포함하도록 발전했으며, 독립형 그래픽 애플리케이션에서도 사용될 수 있다.[11] PHP는 PHP 라이선스 조건에 따라 배포되는 자유 소프트웨어이며, ''PHP''라는 용어의 사용에 대한 제약 때문에 GNU 일반 공중 사용 허가서 (GPL)와 호환되지 않는다.[12]
Perl은 고급 프로그래밍 언어, 범용, 인터프리터 방식의 동적 프로그래밍 언어의 한 종류이다. 이 종류의 언어에는 Perl 5와 Raku가 포함된다.[13] Perl은 많은 현대적인 유닉스 명령줄 도구의 임의적인 데이터 길이 제한 없이 고급 텍스트 처리 기능을 제공하여,[14] 텍스트 파일 조작을 용이하게 한다. Perl 5는 1990년대 후반에 웹용 CGI 스크립팅 언어로서 널리 사용되었는데, 부분적으로는 파싱 능력 때문이었다.[15]
Python은 널리 사용되는 범용, 고급, 인터프리트 방식의 프로그래밍 언어이다.[16] Python은 객체 지향, 명령형, 함수형 및 절차적 패러다임을 포함한 여러 프로그래밍 패러다임을 지원한다. 이는 동적 타입 시스템, 자동 메모리 관리, 표준 라이브러리, 그리고 공백 문자의 엄격한 사용을 특징으로 한다.[17] 다른 동적 프로그래밍 언어와 마찬가지로 Python은 종종 스크립팅 언어로 사용되지만, 스크립팅이 아닌 다양한 맥락에서도 사용된다.
4. 변종
LAMP 사용이 늘어나면서 운영 체제, 웹 서버, 데이터베이스, 프로그래밍 언어의 조합을 달리하는 다양한 변종이 등장했다. 예를 들어 마이크로소프트 윈도우 기반의 WAMP, 아파치 대신 IIS를 실행하는 WIMP 등이 있다.
LAMP 번들은 다음과 같은 다양한 자유-오픈 소스 소프트웨어 패키지와 결합할 수 있다.
- 보안 테스트 및 강화용 netsniff-ng
- 침입 탐지 시스템 (IDS) 및 침입 방지 (IPS) 시스템 Snort
- 다이어그램용 RRDtool
- 모니터링용 Nagios, Collectd 또는 Cacti
위키백과와 다른 위키미디어 재단 프로젝트가 사용하는 소프트웨어는 로드 밸런싱을 위한 LVS와 분산 객체 스토리지를 위한 Ceph 및 Swift와 같은 추가 기능이 있는 맞춤형 LAMP 스택이다.
4. 1. WAMP / WIMP
마이크로소프트 윈도우 운영 체제를 사용하는 WAMP는 아파치 웹 서버를 사용한다. WIMP는 IIS를 웹 서버로 사용한다.[5]4. 2. LAPP
LAMP에서 MariaDB 또는 MySQL을 '''PostgreSQL'''로 대체한 것이다.[19]4. 3. LEMP
LEMP는 Apache가 더 가벼운 웹 서버인 Nginx로 대체된 버전이다.[6]4. 4. 기타 변종
마이크로소프트 윈도우 기반의 WAMP, 매킨토시 기반의 MAMP, 솔라리스 기반의 SAMP, FreeBSD 기반의 FAMP, iSeries 기반의 iAMP 등 다양한 운영 체제 기반 변종이 있다. 웹 서버나 데이터베이스 관리 시스템도 다른 경우가 있는데, LEMP는 Apache 대신 Nginx를 사용하며, LAPP는 MariaDB 또는 MySQL 대신 PostgreSQL를 사용한다.[19]- XAMPP: apachefriends.org에서 제공하는 패키지이다.
- WISP/WISA: 마이크로소프트가 LAMP에 대항하기 위해 제시한 용어로, '''Windows''', '''IIS''', '''SQL Server'''와 '''PHP''' 또는 '''ASP.NET'''으로 구성된다.
- MEAN: 2013년에 MongoDB 개발자인 Valeri Karpov가 제창한 용어로, MongoDB, Express, AngularJS, Node.js를 총칭한다. 서버 측에서 클라이언트 측까지 모든 구현이 JavaScript만으로 완료될 수 있다.
5. 고가용성 및 부하 분산
대량의 요청을 처리하거나 높은 가동 시간을 요구하는 서비스를 제공하는 웹사이트에는 특정 접근 방식이 필요하다. LAMP 스택의 고가용성 접근 방식에는 여러 대의 웹 및 데이터베이스 서버가 포함될 수 있으며, 각 서버에서 제공하는 리소스의 논리적 집계를 수행하고 여러 서버에 워크로드를 분산하는 추가 구성 요소가 결합된다. 웹 서버의 집계는 LVS를 사용하는 것과 같이 로드 밸런서를 앞에 배치하여 제공할 수 있다. 데이터베이스 서버의 집계의 경우, MySQL은 원본 데이터베이스(마스터)와 해당 복사본(슬레이브) 간의 마스터/슬레이브 관계를 구현하는 내부 복제 메커니즘을 제공한다.[18]
이러한 고가용성 설정은 다양한 형태의 중복성을 제공하여 LAMP 인스턴스의 가용성을 향상시킬 수 있으며, 전체적으로 제공되는 서비스의 사용자를 중단하지 않고 특정 수의 구성 요소(별도 서버)에서 다운 타임이 발생할 수 있도록 한다. 이러한 중복 설정은 또한 개별 서버의 데이터 손실로 이어지는 하드웨어 오류를 처리하여 실제로 집합적으로 저장된 데이터가 손실되지 않도록 한다. 이러한 LAMP 설정은 가용성 향상 외에도, 내부 데이터베이스 읽기 작업 수가 쓰기/업데이트 작업 수보다 훨씬 많은 서비스에 대해 거의 선형적인 성능 향상을 제공할 수 있다.[18]
참조
[1]
웹사이트
LAMP (Linux, Apache, MySQL, PHP)
https://whatis.techt[...]
2021-12-15
[2]
웹사이트
LAMP: Freeware Web Publishing System with Database Support
https://web.archive.[...]
2024-06-15
[3]
뉴스
How To: LAMP
https://www.computer[...]
2006-09-25
[4]
웹사이트
LAMP stack
https://www.ibm.com/[...]
IBM
2021-12-15
[5]
서적
Mac OS X in a Nutshell
https://books.google[...]
O'Reilly & Associates
[6]
웹사이트
LEMP stack (Linux, Nginx, MySQL, PHP)
https://lemp.io
lemp.io
2021-12-16
[7]
웹사이트
Featured users
https://web.archive.[...]
PostgreSQL
2014-01-22
[8]
웹사이트
Debian/Ubuntu extend the dominance in the Linux web server market
http://w3techs.com/b[...]
W³Techs
2021-12-16
[9]
웹사이트
Top reasons for product managers to embed
https://web.archive.[...]
MySQL
2014-07-27
[10]
웹사이트
Sun locks up MySQL, looks to future web development
https://web.archive.[...]
InformationWeek
2014-07-27
[11]
웹사이트
Introduction: What can PHP do?
http://www.php.net/m[...]
2021-12-16
[12]
웹사이트
GPL-incompatible, free software licenses
https://www.gnu.org/[...]
Free software foundation
2021-12-16
[13]
웹사이트
About Perl
http://www.perl.org/[...]
perl.org
2021-12-16
[14]
서적
Programming Perl, third edition
O'Reilly Media
2000-07
[15]
서적
Advanced Linux networking
Addison-Wesley Professional
2002-06-21
[16]
웹사이트
Programming language trends – O'Reilly radar
http://radar.oreilly[...]
Radar.oreilly.com
2021-12-16
[17]
웹사이트
About Python
https://www.python.o[...]
Python software foundation
2021-12-16
[18]
웹사이트
Measurement of the achieved performance levels of the web applications with distributed relational database
http://facta.junis.n[...]
Facta Universitatis
2021-12-16
[19]
웹사이트
LAPP {{!}} ビジネス用語集
https://www.elite-ne[...]
2023-01-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com